import pandas as pd
import os
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment

def headers_excel():
    return

def process_excel_file(input_path, output_path):
    # 读取Excel文件
    try:
        df = pd.read_csv(input_path)
    except FileNotFoundError:
        print(f"错误：找不到输入文件 '{input_path}'")
        return
    except Exception as e:
        print(f"错误：读取文件时发生错误: {e}")
        return

    # 数据探查
    print("数据基本信息：")
    df.info()

    # 数据探查：查看数据集行数和列数
    rows, columns = df.shape

    if rows == 0:
        print("没有数据可处理")
        return False

    # 表头数据
    headers = [
        '日期', '店铺类型', '店铺名称', '商品', '投资回报率ROI',
        '订单销售收入（+）', '销售数量', '采购单价', '订单销售采购成本（-）',
        '订单销售退款（-）', '退款数量', '订单销售退款成本（+）',
        '预估运费（-）', '预估运费险5.31%（-）', '技术服务费（-）',
        '腾讯广告+小店广告消耗成本（-）', '销售毛利', '固定成本',
        '盈亏指数', '退款率', '备注1', '备注2'
    ]

    # 准备写入的内容列表
    content_to_write = []
    # 添加标题行（第1行）
    title_row = pd.DataFrame({headers[0]: ['三元策事业部：牙膏 微信小店日报表（2025.07）']})
    content_to_write.append(title_row)

    # 添加表头行（第2行，从A列开始）
    header_row = pd.DataFrame([headers], columns=headers)
    content_to_write.append(header_row)

    # 创建新的Excel工作簿（只包含表头）
    wb = Workbook()
    ws = wb.active
    ws.title = 'Sheet1'

    # 添加标题行（第1行）
    title = '三元策事业部：牙膏 微信小店日报表（2025.07）'
    ws.cell(row=1, column=1, value=title)

    # 合并标题行单元格（A1到W1）
    ws.merge_cells(start_row=1, start_column=1, end_row=1, end_column=23)

    # 设置标题样式
    title_cell = ws['A1']
    title_cell.font = Font(bold=True, size=14)
    title_cell.alignment = Alignment(horizontal='center', vertical='center')

    # 添加表头行（第2行）
    for col_idx, header in enumerate(headers, 1):
        ws.cell(row=2, column=col_idx, value=header)

    # 结合输入表格，写入数据
    order_time = df.loc[1, '订单提交时间']  # 读取日期
    ws['A3'] = str(order_time)[:10]

    shop_type = "抖店"    # 店铺类型
    ws['B3'] = shop_type

    shop_id = "草本节奏官方旗舰店" # 店铺名称
    ws['C3'] = shop_id

    goods = "全部"    # 商品
    ws['D3'] = goods

    # 采购单价
    cgdj = "5"
    ws['H3'] = cgdj

    # 固定成本
    gdcb = "3000"
    ws['S3'] = gdcb

    # 以下为需要计算的数据.
    qttj = df[(df['旗帜颜色'] != '紫色') | (df['广告渠道'] == '短视频') | (df['广告渠道'] == '直播')]
    # 退货退款订单
    thtk = qttj[(qttj['订单状态'] == '已关闭') | (qttj['发货时间'] != '')]

    # 退款数量
    tksl = len(thtk)
    ws['K3'] = tksl

    ROI =
    ws['E3'] =

    # 订单销售收入
    ddxssr =
    ws['F3'] = ddxssr

    # 销售数量
    xssl =
    ws['G3'] = xssl

    # 订单销售采购成本
    cgcb =
    ws['I3'] = cgcb

    # 订单销售退款
    xstk =
    ws['J3'] = xstk

    # 订单销售退款成本
    tkcb =
    ws['L3'] = tkcb

    # 预估运费
    ygyf =
    ws['M3'] = ygyf

    # 订单数量

    # 预估运费险/保费
    ygyfx =
    ws['O3'] = ygyfx

    # 平台服务费2.5 %
    ptfwf =
    ws['P3'] = ptfwf

    # 千川广告消耗成本
    ggxhcb =
    ws['Q3'] = ggxhcb

    # 销售毛利
    xsml =
    ws['R3'] = xsml

    # 盈亏指数
    ykzs =
    ws['T3'] = ykzs

    # 退款率
    tkl =
    ws['U3'] = tkl

    # 处理数据部分
    max_columns = min(len(headers), len(df.columns))
    df = df.iloc[:, :max_columns]
    new_df = pd.DataFrame(columns=headers)
    for i in range(max_columns):
        new_df[headers[i]] = df.iloc[:, i]
    content_to_write.append(new_df)

    # 保存工作簿
    wb.save(output_path)
    print(f"文件已成功保存至 '{output_path}'")

if __name__ == "__main__":
    # 输入和输出文件路径
    input_file = r'E:\测试\抖音店铺数据分析\1111.csv'
    output_file = r'E:\测试\抖音店铺数据分析\数据分析测试样本.xlsx'

    # 处理Excel文件
    process_excel_file(input_file, output_file)